﻿using System;
// 下面的异常类型在CLR和.NET框架中广泛使用，可以在程序中自主抛出这些异常或者将它们作为基类来派生自定义异常类：
//System.ArgumentException
//    当使用不恰当的参数调用函数时抛出，这通常表明程序有bug。
//System.ArgumentNullException
//    ArgumentException的子类，当函数参数为null（意料外的）时抛出。
//System.ArgumentOutOfRangeException
//    ArgumentException的子类，当属性值太大或太小时抛出（通常时数值型）。例如：当给只接受正值的函数传递负数时。
//System.InvalidOperationException
//    不管时哪种特定的属性值，当对象的状态不符合方法正确执行的要求时抛出。例如读取未打开的文件或访问列表的下一个元素，而与之相关的列表在循环中已被部分修改。
//System.NotSupportedException
//    该异常抛出表示不支持特定功能。例如：在只读的集合上应用Add方法。
//System.NotImplementedException
//    该异常抛出表明某个方法还没有具体实现。
//System.ObjectDisposedException
//    当函数调用的对象已被释放时抛出。
//另一个常见的异常类型是NullReferenceException。当一个对象的值未null并访问它的成员时，CLR就会抛出这个异常（表示代码有bug）。
//throw null;
namespace _106_try语句和异常_常用的异常类型
{
    class Program
    {
        static void Main(string[] args)
        {
            //下面的语句会直接抛出一个NullReferenceException异常（仅用于测试目的）：
            throw null;
        }
    }
}
